Урок 12. Оператор цикла for | Убунту Линукс

Всем привет. Это двенадцаты по счету урок по программированию на Си. И сегодня мы рассмотрим оператор цикла for. For очень похож на оператор цикла while.

Алгоритм работы оператора цикла for:

for-8424211Рассмотрим оператор цикла for на примере:

1
2
3
4
5
6
7
#include 
int main (){
int a;
for (a=5;a!=10;a++) {
printf ("a=%d\n", a);}
return 0;
}

Результат:

a=5
a=6
a=7
a=8
a=9

Посмотрите еще раз алгоритм работы оператора цикла for.

  • В нашем случае A это a=5;
  • B это — a!=10;
  • D это — a++ (увеличиваем значение на одну единицу);
  • C это тело цикла — printf («a=%d\n», a);

Программа будет выполняться до тех пор, пока условие (B) истинно. Так как значение переменной a увеличивается на одну единицу каждый раз, то условие при определенном значении станет ложью, и программа завершит свою работу (в нашей программе, в шестой попытке условие стало ложным, так как значение a равнялось десяти).

Давайте теперь выполним задачу посложнее. Напишем программу, которая выводит наибольшее значение из введенных чисел:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include 
int main () {
int u, n, a, m; printf ("Введите количество чисел: ");
scanf ("%d", &n);
printf ("Введите %d чисел: ", n);
scanf ("%d", &m);
for(u = 1; u < n ; u++) {
scanf ("%d\n", &a);
if(a > m) m = a;
}
printf ("%d", m);
return 0;
}

Рассмотрим механизм поподробнее начиная с четвертой строки:

  1. Объявляем переменные.
  2. В пятой строке требуем ввести количество чисел, а в шестой записываем их в переменную n.
  3. В седьмой строке требуем ввести n-ое количество чисел, а в восьмой записываем их в переменную m.
  4. В девятой строке объявляем оператор цикла for. Присваиваем переменной u значение 1. Если um, то присваиваем переменной m значение переменной a. Именно здесь и спрятан алгоритм определения наибольшего значения. Потом оператор цикла for выполняется еще раз, и еще. До тех пор, пока не будут проверены все числа.
  5. В четырнадцатой строке выводим наибольшее число.

Механизм заключается в том, чтобы каждый раз сравнивать два числа, наибольший из двух записать в переменную m. А потом эту переменную m стравнить еще раз с a, и записать опять в переменную m. И так до тех пор, пока u не станет равным n.

Д/З:

1
2
3
4
5
6
7
8
#include 
 
int main (){
int a;
for (;a!=10;;) {
printf ("a=%d\n", a);}
return 0;
}
  1.  Проанализируйте работу программы.

Обсуждение на форуме.